Field
This disclosure relates generally to memories, and more specifically, to a memory array coupled with one or more ternary content addressable memories (TCAM).
Related Art
A content addressable memory (CAM) is a type of memory that is typically used in high-speed search operations. For a search operation, a CAM compares input search data against a table including rows of stored data, and returns the address of the matching data. Two basic types of CAMs include a binary CAM (BCAM) and a ternary CAM (TCAM). In a BCAM, each bitcell stores one of two data states, a logic “1” or a logic “0”, such that the input search data is compared with each row of the BCAM to determine whether the stored data of the row matches the input search data. In a TCAM, each bitcell stores one of three data states, a logic “1”, a logic “0”, or a “don't care” value, in that the “don't care” value results in a match of the bit regardless of the value of the input bit of the search data. In order to encode three data states, each TCAM bitcell is configured to store two bits.
The address returned during a search operation can be used to retrieve data from a random access memory (RAM), which is a type of memory that is often implemented as volatile memory. One type of RAM is static RAM (SRAM), which uses latching circuitry to store data. A traditional SRAM includes a plurality of bitcells, where each bitcell stores a bit of data. In a traditional SRAM, the bitcells statically store data, as opposed to a dynamic RAM (DRAM), where the data stored at each bitcell needs to be periodically refreshed. However, a traditional SRAM is still considered volatile memory because the data stored by the SRAM is lost when power to the SRAM is lost.
The present invention is illustrated by way of example and is not limited by the accompanying figures, in which like references indicate similar elements, unless otherwise noted. Elements in the figures are illustrated for simplicity and clarity and have not necessarily been drawn to scale.